package com.h.mybatis.mapper;

import com.h.mybatis.model.UserInfo;
import org.apache.catalina.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserInfoMapperXML {
    // 使用 XML 进行 接口的实现

    // 用xml实现 查询
    List<UserInfo> selectAll();

    //对于xml实现接口 查询同样存在，Java的属性名称和MySQL的属性名称是不对应的问题，这里同样是三种方式解决
    List<UserInfo> selectAll2();

    // 单参数
    List<UserInfo> selectAllById(Integer id);

    // 多个参数
    UserInfo selectNameAndPassword(String username,String password);

    // 使用 @Param 更改参数名
    UserInfo selectNameAndPassword2(@Param("passWord") String password,@Param("userName") String username);

    // 传递对象
    List<UserInfo> selectBean(UserInfo userInfo);

    // 用xml实现 增加
    Integer insert(UserInfo userInfo);

    // 得到 自增主键
    Integer insert2(UserInfo userInfo);

    // 用xml实现 删除
    Integer deleteUser(Integer id);

    // 使用xml实现 修改
    Integer updateUser(UserInfo userInfo);

    Integer insert3(UserInfo userInfo);

    List<UserInfo> selectByCondition(UserInfo userInfo);

    Integer updateByConfition(UserInfo userInfo);

    Integer deleteBath(List<Integer> ids);

    List<UserInfo> selectAllBy(Integer id);
}
